package com.xydtech.workflow.domain;

import com.xydtech.common.annotation.Excel;
import com.xydtech.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 流程节点配置对象 wfl_flowstep
 *
 * @author JHON
 * @date 2021-05-07
 */
public class WflFlowstep extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 版本号 */
    private Long versionId;

    /** 节点编号 */
    private Long stepId;
    /** 节点名称 */
    private String stepName;
    /** 节点类型            1-起始节点            2-中间节点            3-结束节点 */
    @Excel(name = "节点类型            1-起始节点            2-中间节点            3-结束节点")
    private String stepType;

    /** 顺序号 */
    @Excel(name = "顺序号")
    private Long orderNum;

    /** 任务方案            1-选人员            2-选角色 */
    @Excel(name = "任务方案            1-选人员            2-选角色")
    private String taskMode;

    /** 任务定位            1-当前用户本人            2-关联步提交人            3-自定义SQL            4-当前机构指定角色            5-上级机构指定角色            6-指定机构指定角色            7-任意机构指定角色 */
    @Excel(name = "任务定位            1-当前用户本人            2-关联步提交人            3-自定义SQL            4-当前机构指定角色            5-上级机构指定角色            6-指定机构指定角色            7-任意机构指定角色")
    private String taskPosition;

    /** 审批机构 */
    private Long taskOrgId;
    /** 审批机构 */
    @Excel(name = "审批机构")
    private String taskOrgName;

    /** 任务索引 */
    @Excel(name = "任务索引")
    private Long taskIndex;

    /** 分配策略  1-任务抢先2-任务多选抢先 3-任务并发4-任务多选并发*/
    @Excel(name = "分配策略 1-任务抢先2-任务多选抢先 3-任务并发4-任务多选并发")
    private String taskPolicy;
    /** 自定义SQL */
    private String defineSql;

    /** 审批权限 */
    @Excel(name = "审批权限")
    private String approvPower;

    /** 过滤上步提交人 */
    @Excel(name = "过滤上步提交人")
    private String laststepFilter;

    /** 并发审批模式            1-正常模式            2-投票模式 */
    @Excel(name = "并发审批模式            1-正常模式            2-投票模式")
    private String approvMode;

    /** 参与人数(任务并发使用) */
    @Excel(name = "参与人数(任务并发使用)")
    private Long approvPop;

    /** 通过人数(任务并发使用)            并发审批模式为投票模式启用 */
    @Excel(name = "通过人数(任务并发使用)            并发审批模式为投票模式启用")
    private Long passPop;
    /** 审批配置状态 0-未配置 1-已配置*/
    private String sts;
    /** 多条件组合逻辑            1-与            2-或 */
    @Excel(name = "多条件组合逻辑            1-与            2-或")
    private String groupType;
    /**审批限时(小时)默认0代表不限时*/
    private int timeLimit;

    /** 复制的版本号 */
    private Long copyVersionId;

    public Long getCopyVersionId() {
        return copyVersionId;
    }

    public void setCopyVersionId(Long copyVersionId) {
        this.copyVersionId = copyVersionId;
    }

    public String getStepName() {
        return stepName;
    }

    public void setStepName(String stepName) {
        this.stepName = stepName;
    }

    public void setVersionId(Long versionId) {
        this.versionId = versionId;
    }

    public Long getVersionId() {
        return versionId;
    }

    public void setStepId(Long stepId) {
        this.stepId = stepId;
    }

    public Long getStepId() {
        return stepId;
    }

    public void setStepType(String stepType) {
        this.stepType = stepType;
    }

    public String getStepType() {
        return stepType;
    }

    public void setOrderNum(Long orderNum) {
        this.orderNum = orderNum;
    }

    public Long getOrderNum() {
        return orderNum;
    }

    public void setTaskMode(String taskMode) {
        this.taskMode = taskMode;
    }

    public String getTaskMode() {
        return taskMode;
    }

    public void setTaskPosition(String taskPosition) {
        this.taskPosition = taskPosition;
    }

    public String getTaskPosition() {
        return taskPosition;
    }

    public void setTaskOrgId(Long taskOrgId) {
        this.taskOrgId = taskOrgId;
    }

    public Long getTaskOrgId() {
        return taskOrgId;
    }

    public String getTaskOrgName() {
        return taskOrgName;
    }

    public void setTaskOrgName(String taskOrgName) {
        this.taskOrgName = taskOrgName;
    }

    public void setTaskIndex(Long taskIndex) {
        this.taskIndex = taskIndex;
    }

    public Long getTaskIndex() {
        return taskIndex;
    }

    public void setTaskPolicy(String taskPolicy) {
        this.taskPolicy = taskPolicy;
    }

    public String getTaskPolicy() {
        return taskPolicy;
    }

    public void setApprovPower(String approvPower) {
        this.approvPower = approvPower;
    }

    public String getApprovPower() {
        return approvPower;
    }

    public void setLaststepFilter(String laststepFilter) {
        this.laststepFilter = laststepFilter;
    }

    public String getLaststepFilter() {
        return laststepFilter;
    }

    public void setApprovMode(String approvMode) {
        this.approvMode = approvMode;
    }

    public String getApprovMode() {
        return approvMode;
    }

    public void setApprovPop(Long approvPop) {
        this.approvPop = approvPop;
    }

    public Long getApprovPop() {
        return approvPop;
    }

    public void setPassPop(Long passPop) {
        this.passPop = passPop;
    }

    public Long getPassPop() {
        return passPop;
    }

    public String getSts() {
        return sts;
    }

    public void setSts(String sts) {
        this.sts = sts;
    }

    public String getDefineSql() {
        return defineSql;
    }

    public void setDefineSql(String defineSql) {
        this.defineSql = defineSql;
    }

    public void setGroupType(String groupType) {
        this.groupType = groupType;
    }

    public String getGroupType() {
        return groupType;
    }

    public int getTimeLimit() {
        return timeLimit;
    }

    public void setTimeLimit(int timeLimit) {
        this.timeLimit = timeLimit;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("versionId", getVersionId())
                .append("stepId", getStepId())
                .append("stepName", getStepName())
                .append("stepType", getStepType())
                .append("orderNum", getOrderNum())
                .append("taskMode", getTaskMode())
                .append("taskPosition", getTaskPosition())
                .append("taskOrgId", getTaskOrgId())
                .append("taskOrgName", getTaskOrgName())
                .append("taskIndex", getTaskIndex())
                .append("taskPolicy", getTaskPolicy())
                .append("defineSql", getDefineSql())
                .append("approvPower", getApprovPower())
                .append("laststepFilter", getLaststepFilter())
                .append("approvMode", getApprovMode())
                .append("approvPop", getApprovPop())
                .append("passPop", getPassPop())
                .append("sts", getSts())
                .append("groupType", getGroupType())
                .append("timeLimit", getTimeLimit())
                .toString();
    }
}
